1. Field of the invention
This invention relates to improvements in mass data storage devices, or the like, and methods for operating same, and more particularly to improvements in methods for applying and using error correcting codes in the operation of mass data storage devices, or the like.
2. Relevant Background
Mass data storage devices include well known hard disk drives that have one or more spinning magnetic disks or platters onto which data is recorded for storage and subsequent retrieval. Hard disk drives may be used in many applications, including personal computers, set-top boxes, video and television applications, audio applications, or some mix thereof. Many applications are still being developed. Applications for hard disk drives are increasing in number, and are expected to further increase in the future.
Recently, in the design of hard disk drives, the drives have been considered analogous to classical communication channels, and error-correcting codes (ECCs) have been applied to the data as it is written to the disk of the drive. Upon subsequent retrieval of the data, the error correcting code is decoded and used to detect and correct any data errors that may have occurred during the process. Thus, modern magnetic disk drives use an error correction code (ECC) to identify and attempt to correct errors in a unit of data, generally a disk sector.
Error correcting codes that are used in hard disk drives or the like can be quite complicated. Generally, error correcting codes are provided by code experts that design the codes for particular hard disk drive characteristics and applications that are specified by a hard disk drive manufacturer. For example, some of the characteristics of the hard disk drive that may be taken into account in the design of a particular ECC are the media noise characteristics of the drive, the fly-height of the heads, which effects the signal-to-noise ratio of the device, the data density at which the data is written to the hard disk drive, and so on.
Typically, the data that is written to the hard disk drive, for example, has a predetermined number of error correcting code (ECC) bits associated with a corresponding predetermined number of data bits. The associated data bits may be referred to, for example, as a data frame or xe2x80x9cgroupxe2x80x9d. It is well known that the larger the number of ECC bits that are associated with the predetermined number of data bits, the larger the number of errors that can be corrected in the read back data. This is not a linear function, however, since the larger the number of code bits that are used per data frame, the slower the data transfer rate that can be accomplished. Moreover, the larger the number of code bits that are associated with a data frame, the smaller the space that exists on the drive that can contain user data. Thus, generally tradeoffs between the space that would be occupied by the data bit and the accuracy desired may be made over the entire device, or, alternatively, the ECC may be designed to handle the xe2x80x9cworst casexe2x80x9d type of error that may be experienced in the device.
The errors themselves may be either xe2x80x9chardxe2x80x9d or xe2x80x9csoftxe2x80x9d errors. Hard errors are errors not corrected b the ECC. Soft errors are bit errors seen prior to any ECC correction attempt. A meaningful pattern of ECC bits is calculated by an ECC algorithm, based on the data bits to be written to the sector. When the data is written to the disk, the ECC bits are typically appended to the end of the sector and become an integral part of the data in the sector. When the data in the sector is retrieved, the ECC bits are used to determine if specific data bits are in error and what they should correctly be to a degree of certainty inherent to the power of the algorithm.
Thus, according to a broad aspect of the invention, a method is presented for performing error correction code operations on data to be read from a hard disk drive. The method includes applying a first error correction code algorithm to a first set of data to be written to the hard disk drive. A second error correction code algorithm, different from the first, is applied to a second set of data to be written to the hard disk drive. The first and second error correction code algorithms may for example produce a different number of error correction code bits for application to said data. The selection between the first and second algorithms may be made, for instance, in dependence upon the physical location on the hard disk drive to which the data is to be written, or in dependence upon the type of said data to be written.
According to another broad aspect of the invention, a hard disk drive system is presented which has a first circuit for applying a first error correction code algorithm to a first set of data to be written to a disk of said hard disk drive, and a second circuit for applying a second error correction code algorithm, different from the first error correction code algorithm, to a second set of data to be written to the disk. A circuit selects between the first and second circuits in dependence upon a predetermined error correction code selection criterion.
In one embodiment, the error correction selection criterion selects which of said first and second algorithms is to be applied in dependence upon the physical location of said data on said hard disk drive. In another embodiment, the error correction selection criterion selects which of said first and second algorithms is to be applied in dependence upon the type of said data to be written to the disk. The first and second error correction code algorithms preferably produces a different number of error correction code bits for application to the data.
According to yet another broad aspect of the invention, a method is presented for operating a hard disk drive in which first a partial response type signal equalization filter is applied to data read from at a first location on the hard disk drive a second partial response type filter, different from said first partial response type filter, is applied to data read from a second location of said hard disk drive. For example, the first partial response type filter can be a PR4 filter, and the second partial response type filter can be an EPR4 filter.